<?php
/**
* Films_model
* 
* Реализует следующие возможности:
* - формирование статистики;
* - формирование списка фильмов;
* - сохранение в БД нового фильма;
* - сохранение в БД нового комментария;
* - формирование списка фильмов;
* - формирование списка комментариев.
* 
* @author Утехин Е.А. <hotab.jn@gmail.com>
* @version 1.0
*/
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Films_model extends CI_Model {

	function _construct() {
      parent::_construct();
	}

   /**
   * Метод класса
   * 
   * 
   * @return array
   */	
	function get_stat() {
		$query = $this->db->query("SELECT 
									    count(idfilms) AS countfilms
									FROM
									    films");
		$row = $query->row();
		$resp['countfilms'] = $row->countfilms;
		
		$today = date('Y-m-d');
		$query = $this->db->query("SELECT 
									    count(idfilms) AS countfilmstoday
									FROM
									    films
									WHERE
										posted='$today'");
		$row = $query->row();
		$resp['countfilmstoday'] = $row->countfilmstoday;
		
		$query = $this->db->query("SELECT 
									    count(idcomments) AS countcomments
									FROM
									    comments");
		$row = $query->row();
		$resp['countcomments'] = $row->countcomments;				

		$query = $this->db->query("SELECT 
									    count(idcomments) AS countcommentstoday
									FROM
									    comments
									WHERE
										posted='$today'");
		$row = $query->row();
		$resp['countcommentstoday'] = $row->countcommentstoday;
		return $resp;
	}

   /**
   * Метод класса
   * 
   * 
   * @return array
   */	
	function get_films_list() {
		$query = $this->db->query("SELECT 
									    f.title,
									    f.year,
									    f.genre,
									    f.imdbrating,
									    f.posted,
									    if((select 
									            max(posted) as posted
									        from
									            comments
									        where
									            idfilms = f.idfilms) IS NULL,
									        'комментарии отсутствуют',
									        (select 
									            max(c.posted)
									        from
									            comments c
									        where
									            c.idfilms = f.idfilms)) as lastcomment,
									     f.idfilms
									FROM
									    films f");
		if ($query->num_rows()>0) {
			$row = $query->result_array();
			return $row;
		}
	}
	
	function save_film_data($data) {
		$this->db->insert('films', $data); 
	}

	/**
   * Метод класса
   * 
   * @param integer $idfilms целое число
   * @return array
   */	
	function get_film_info($idfilms) {
		$query = $this->db->query("select 
									    f.poster,
									    f.description,
									    f.title,
									    f.genre,
									    f.imdbrating,
									    f.year,
									    f.idfilms
									from
									    films f
									where
									    f.idfilms = $idfilms");
		if ($query->num_rows()>0) {
			$row = $query->result_array();
			return $row[0];
		}
	}
	
	function add_comment($data) {
		$this->db->insert('comments', $data); 
	}

	/**
   * Метод класса
   * 
   * @param integer $idfilms целое число
   * @return array
   */		
	function get_comment_list($idfilms) {
		$query = $this->db->query("SELECT 
									    u.email, c.comment, c.posted
									FROM
									    comments c
									        JOIN
									    users u ON (c.idusers = u.idusers)
									WHERE
									    c.idfilms = $idfilms");
		if ($query->num_rows()>0) {
			$row = $query->result_array();
			return $row;
		}
	}
}